Industrial automation or control systems include controllers to control machinery in a manufacturing process, as well as human machine interfaces (HMI) to allow operators to interact with the controller or other devices in the system. A controller is a special purpose computer that runs a stored control program in a specific programming language in real-time. The controller examines a series of inputs, typically from sensors, reflecting the status of a controlled machine or process and, based on the logic of the control program, generates outputs in the form of electrical signals to control actuators or the like to control the machine or process. In general, controllers are constructed in a modular fashion to accommodate different applications requiring different numbers and types of inputs and outputs as is determined by the particular machine or process being controlled. One type of controller is a programmable logic controller (PLC), which typically runs under the direction of a ladder logic program, and includes instructions or statements which define relationships between an output variable and one or more input variables. In ladder logic programs, the input and output variables may be represented graphically as contact symbols and coil symbols arranged in a series of rungs running between a pair of vertical power rails, and it is common to represent and view these programs graphically.
Industrial control systems can also include other devices such as desktop computers of engineers or designers, and servers for control system back up and security binding. The personal computers are also used during control system design, and can be used for simulations producing data to be searched as well. Along with the controllers and HMI devices, these industrial devices can store a significant amount of data of various types and taking a variety of forms, including for example, ladder logic or other program instructions, input/output configurations, network configuration, physical layout configuration, graphics information, sensor information, and more. Much of this data is stored in associated data files, typically located on file systems on these devices as well as computers in one or more locations. The data are typically also stored in projects (located in file systems of computers) that were used to configure the devices or to run simulations. The industrial devices can also generate a significant amount of data relevant to the operation of the manufacturing process, such as data indicative of various events, including alarms, which can occur in the control system. Also, data collected from sensors can be archived, for example to allow diagnostics in the future. This industrial data is relevant and useful to an operator such as a control system designer or control system administrator in order to design new systems, add components, design new programs or interfaces, or trouble shoot problems. Further, the structural arrangement of the various industrial devices which make up the control system may be relevant to the control system designer or administrator.
Currently, searching in industrial data is problematic and generally limited by the user interface and ways of search provided by software applications. For example, when a control program for a PLC or an interface program for a HMI device is developed, a designer typically manually references one or more existing sources of information, such as existing PLC ladder logic programs and/or HMI graphic files, in order to copy specific portions of data in an effort to save time and expense. This can require the designer to access each individual device or other locations, such as a server or personal computers of control system designers or administrators, to obtain the most current information. Further, once a designer has accessed a particular device or file storage point, the data stored therein can be cumbersome to search as the various industrial devices may utilize different data formats for different types of devices, requiring the designer to be familiar with the specific data format and search methodology.
Similarly, when servicing these industrial devices, a technician will often have to be familiar with many interrelated data variables in order to perform an effective search to uncover problems, as a standard search may not reveal all of the variables. Furthermore, various fault events that occur on a particular device may be cumbersome to resolve, as a technician will typically have to search all interrelated devices for specific points of data that are related to that fault event. If a similar event has occurred in another device running a similar process, the technician would desire to access that device in an effort to discover the discrepancies with the faulting device. Thus, accessing the devices themselves in order to acquire data can be cumbersome, inefficient and impractical. Furthermore, a service technician or system designer is commonly situated at a particular industrial facility and may be limited to accessing only the devices and data available at that particular facility.
Therefore, it would be desirable to provide a system and method for retrieving different types of data associated with a variety of industrial sources, and storing such data in a manner that it can be easily accessed and searched. Also, in addition to keyword based searching, the format of data should allow utilizing structural relations in industrial data for formulating search queries and for answering them.